﻿' ******************************************************************************
' ** 
' **  Yahoo! Managed
' **  Written by Marius Häusler 2011
' **  It would be pleasant, if you contact me when you are using this code.
' **  Contact: YahooFinanceManaged@gmail.com
' **  Project Home: http://code.google.com/p/yahoo-finance-managed/
' **  
' ******************************************************************************
' **  
' **  Copyright 2011 Marius Häusler
' **  
' **  Licensed under the Apache License, Version 2.0 (the "License");
' **  you may not use this file except in compliance with the License.
' **  You may obtain a copy of the License at
' **  
' **    http://www.apache.org/licenses/LICENSE-2.0
' **  
' **  Unless required by applicable law or agreed to in writing, software
' **  distributed under the License is distributed on an "AS IS" BASIS,
' **  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
' **  See the License for the specific language governing permissions and
' **  limitations under the License.
' ** 
' ******************************************************************************


Namespace YahooManaged.Search


    Friend Class XMLParser
        Private mSearchHelper As New SearchHelper


        Public Function ToSearchResult(ByVal node As XmlNode) As SearchResult
            If node IsNot Nothing AndAlso node.Name.ToLower = "result" Then
                Dim title As String = String.Empty
                Dim abstract As String = String.Empty
                Dim url As Uri = Nothing
                Dim clickUrl As Uri = Nothing

                For Each prpNode As XmlNode In node.ChildNodes
                    Select Case prpNode.Name.ToLower
                        Case "title" : title = prpNode.InnerText
                        Case "abstract" : abstract = prpNode.InnerText
                        Case "url"
                            If prpNode.InnerText.Trim <> String.Empty Then url = New Uri(prpNode.InnerText)
                        Case "clickurl"
                            If prpNode.InnerText.Trim <> String.Empty Then clickUrl = New Uri(prpNode.InnerText)
                    End Select
                Next
                Return New SearchResult(title, abstract, url, clickUrl)
            Else
                Return Nothing
            End If
        End Function

    End Class


End Namespace